import Cache from '@/utils/cache'
import Config from '@/config/app'

const state = {
	popupLoginShow: false, //全局登录弹窗状态
	globalData: Cache.get(Config.CACHE_GLOBAL, {
		navHeight: 0, //小程序顶部 导航栏高度
	}),
	token: Cache.get(Config.CACHE_TOKEN) || '', //登录后的token
	userInfo: Cache.get(Config.CACHE_USER_INFO), //已登录的用户信息
	isLogin: !Cache.get(Config.CACHE_TOKEN) ? false : true, //判断是否登录
};

//commit
const mutations = {
	//设置 全局 登录弹窗 隐藏/显示
	setLoginShow(state, isShow){
		state.popupLoginShow = isShow
	},
	//设置token
	setToken(state, token){
		state.token = token
		Cache.set(Config.CACHE_TOKEN, token)
	},
	//设置登录用户信息
	setUserInfo(state, userInfo){
		state.userInfo = userInfo
		Cache.set(Config.CACHE_USER_INFO, userInfo)
	},
	//设置公共数据
	setGlobalData(state, globalData){
		state.globalData = globalData
		Cache.set(Config.CACHE_GLOBAL, globalData)
	}
};

//dispatch
const actions = {
	//设置 全局 登录弹窗 隐藏/显示
	setLoginShow(context, isShow){
		context.commit('setLoginShow', isShow);
	},
	//设置用户token，context:上下文，这里可以理解为store对象
	setToken(context, token){
		context.commit('setToken', token);
	},
	//设置登录用户信息
	setUserInfo(state, userInfo){
		context.commit('setUserInfo', userInfo);
	}
}
export default {
	state,
	mutations,
	actions
};
